﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace SwaggerWithApiVersionDemo
{

    //这是 一个支持多个版本的单控制器

    [ApiVersion("1.0")]
    [ApiVersion("3.0")]
    [Route("api/v{version:apiVersion}/map")]
    [ApiController]
    public class MapController : ControllerBase
    {

        #region 这个函数只 支持 1.0 版本

        [HttpGet, MapToApiVersion("1.0")]
        public string Get()
        {
            return HttpContext.GetRequestedApiVersion().ToString();
        }

        #endregion


        #region 这个函数只 支持 3.0 版本

        [HttpGet, MapToApiVersion("3.0")]
        public string Getv3()
        {
            return HttpContext.GetRequestedApiVersion().ToString();
        }
        #endregion

        #region 这个函数 1.0 和 3.0 都支持

        [HttpGet]
        [Route("both")]
        public string GetV1V3()
        {
            return "V1 + V3";
        }

        #endregion
    }
}